import request from "./request";

/**
 *    登录Api
 * @param {object} data {username:用户名 , password:密码}
 * @returns
 */
export function loginApi(data) {
  return request({
    url: "/login",
    method: "POST",
    data,
  });
}

/**
 *   左侧侧栏菜单
 * @param {object} 没有参数
 * @returns
 */

export function getMenusApi() {
  return request({
    url: "/menus",
    method: "GET",
  });
}
/**
 *  用户列表数据
 * @param {object} params {total:总条数,pagenum:当前页}
 * @returns
 */

export function getUserApi(params) {
  return request({
    url: "/users",
    method: "GET",
    params,
  });
}

/**
 * 用户添加
 * @param {object} data {id:用户ID，rid:用户角色ID，username:用户名，email:邮箱，mobile：手机号}
 * @returns
 */
export function addUserApi(data) {
  return request({
    url: "/users",
    method: "POST",
    data,
  });
}

/**
 *  编辑用户
 * @param {number} id  用户 id
 * @param {object} data {mobile:手机号，email：邮箱}
 * @returns
 */
export function editUserApi(id, data) {
  return request({
    url: `/users/${id}`,
    method: "PUT",
    data,
  });
}

/**
 *
 * @param {number} uId {uId:用户 ID}
 * @param {boolean} type {type:用户状态}
 * @returns
 */
export function statusUserApi(uId, type) {
  return request({
    url: `users/${uId}/state/${type}`,
    method: "PUT",
  });
}

/**
 * 用户删除角色
 * @param {object} id {id:用户ID}
 * @returns
 */
export function delUserApi(id) {
  return request({
    url: `users/${id}`,
    method: "DELETE",
  });
}

/**
 *
 * @param {number} id:用户ID，
 * @param {object} data {role_id：角色ID，}
 * @returns
 */
export function roleRightsUserApi(id, data) {
  return request({
    url: `/users/${id}/role`,
    method: "PUT",
    data,
  });
}

/**
 * 角色列表数据
 * @returns
 */
export function getRolesApi() {
  return request({
    url: "/roles",
    method: "GET",
  });
}
/**
 * 删除角色指定权限Api
 * @param {*} roleId
 * @param {*} rightId
 * @returns
 */
export function delRolesToRightApi(roleId, rightId) {
  return request({
    url: `roles/${roleId}/rights/${rightId}`,
    method: "DELETE",
  });
}
/**
 *  权限数据
 * @param {object} type {list:默认，tree：树形}
 * @returns
 */
export function getRightsApi(type = "list") {
  return request({
    url: `/rights/${type}`,
    method: "GET",
  });
}

/**
 *  封装角色授权接口Api
 * @param {string} roleId 角色id
 * @param {string} rids 权限列表字符串,用逗号间隔
 * @returns
 */
export function updateRightsToRoleApi(roleId, rids) {
  return request({
    url: `roles/${roleId}/rights`,
    method: "POST",
    data: { rids },
  });
}
/**
 * 获取商品列表
 * @param {object} params {query：查询参数，pagenum:当前页码,pagesize:每页显示条数}
 * @returns
 */
export function getGoodsListApi(params) {
  return request({
    url: `/goods`,
    method: "GET",
    params,
  });
}
/**
 * 调用商品分类
 * @param {object} params {type:分类级别，pagenum：当前页码值，pagesize：每页显示多少条数据}
 * @returns
 */
export function getGoodsCataListApi(params) {
  return request({
    url: `/categories`,
    method: "GET",
    params,
  });
}

/**
 * 获取动态、静态参数接口
 * @param {String} cateId 分类Id
 * @param {String} sel  商品参数类型  many 动态参数【默认值】   only静态参数
 * @returns
 */
export function getGoodsParamsListApi(cateId, sel = "many") {
  return request({
    url: `/categories/${cateId}/attributes`,
    method: "GET",
    params: { sel },
  });
}
/**
 *  添加商品
 * @param {object} data | 参数名          | 参数说明                   | 备注     |
| --------------- | ------------------------------------------------- | -------- |
| goods_name      | 商品名称                                          | 不能为空 |
| goods_cat       | 以为','分割的分类列表                             | 不能为空 |
| goods_price     | 价格                                              | 不能为空 |
| goods_number    | 数量                                              | 不能为空 |
| goods_weight    | 重量                                              | 不能为空 |
| goods_introduce | 介绍                                              | 可以为空 |
| pics            | 上传的图片临时路径（对象）                        | 可以为空 |
| attrs           | 商品的参数（数组），包含 `动态参数` 和 `静态属性` | 可以为空 |
 * @returns
 */
export function addGoodsApi(data) {
  return request({
    url: "/goods",
    method: "POST",
    data,
  });
}

/**
 * 获取商品分类Api
 * @param {object} params {type:分类级别 ， pagenum:页码，pagesize:每页条数}
 * @returns
 */
export function getGoodsCateListApi(params) {
  return request({
    url: `/categories`,
    method: "GET",
    params,
  });
}

/**
 *  添加分类
 * @param {object} data {cat_pid：分类父 ID，cat_name：分类名称，cat_level：分类层级}
 * @returns
 */
export function getGoodsCateApi(data) {
  return request({
    url: `/categories`,
    method: "POST",
    data,
  });
}

/**
 *  数据统计
 * @returns
 */
export function getReportApi() {
  return request({
    url: "reports/type/1",
    method: "GET",
  });
}
